SK
action

Evento Double Exp

Por SkyLigh, 14 de out. de 2015 em Actions e Talkactions

22
7.9k
SkyLighS
14 de outubro de 2015 às 23:47

Fala galera tudo bem? Essa semana teve um membro que pediu um evento de double exp até que consegui fazer usando alguns scripts como base, então vamos ao código.

INSTALAÇÃO

Separador.PNG

Vá em data/creaturescripts/scripts e em creaturescripts.xml adicione a seguinte tag.

<event type="kill" name="ExpBonus" event="script" value="exp.lua"/>

Em data/creaturescripts/scripts crie um arquivo .lua e renomeie para exp.lua e adicione o seguinte código.

function onKill(cid, target)
if isPlayer(cid) and isMonster(target) then
if getGlobalStorageValue(102590) - os.time() >= 1 then
local exp = getExperienceStage(getPlayerLevel(cid), getVocationInfo(getPlayerVocation(cid)).experienceMultiplier)
local count = ((getMonsterInfo(string.lower(getCreatureName(target))).experience*1.5*exp)/2)
doPlayerAddExperience(cid, count)
addEvent(doSendAnimatedText, 500, getCreaturePosition(cid), '+'..count, math.random(50,60))
end
else
return TRUE
end
return TRUE
end


Agora no data/creaturescripts/scripts e login.lua adicione a seguinte tag.

registerCreatureEvent(cid, "ExpBonus")


Agora vá em data/talkactions/scripts talkactions.xml

<talkaction words="/doubleexp" access="5" event="script" value="exp.lua"/>

Em data/talkactions/scripts crie um arquivo.lua e o renomeio para exp.lua e adicione o seguinte código dentro.

function onSay(cid, words, param, channel)
local config = {
storage = 102590,
}
if(param == 'cancel') then
if getGlobalStorageValue(config.storage) > 0 then
setGlobalStorageValue(config.storage, -1)
doBroadcastMessage("Double Exp cancelado")
end
return true
end
	
param = tonumber(param)
if(not param or param < 0) then
doPlayerSendCancel(cid, "Digite por quantas horas o evento ira durar")
return true
end
if getGlobalStorageValue(config.storage) - os.time() <= 0 then
setGlobalStorageValue(config.storage, os.time()+param*60*60)
doBroadcastMessage("Exp bonus ativado 50% + EXP  por "..param.." horas! Aproveite.")
end
return true
end

Separador.PNG

COMO UTILIZAR

Para ativar o comando digite /doubleexp Quantidade de horas que vai durar o evento Exemplo /doubleexp 3 o evento ira durar por 3 horas.

Para cancelar o evento basta digitar /doubleexp cancel apenas os GOD'S podem utilizar os 2 comandos.

Separador.PNG

Créditos

--- Pela postagem do tópico e edição nos códigos.

--- Por eu tê pego uma parte de um script dele do creaturescripts.

Espero que gostem :)

15 de outubro de 2015 às 13:01

funcionou mto bem!

 

teria como passar pra tfs 1.2 tbm?

SkyLighS
15 de outubro de 2015 às 13:06

funcionou mto bem!

 

teria como passar pra tfs 1.2 tbm?

 

Que bom que funcionou, sobre a questão pra passar pro tfs 1.2 creio que tenha como adaptar sim.

15 de outubro de 2015 às 20:21

 

Que bom que funcionou, sobre a questão pra passar pro tfs 1.2 creio que tenha como adaptar sim.

 

vc consegue fazer?

estou no aguardo

SkyLighS
15 de outubro de 2015 às 20:25

 

vc consegue fazer?

estou no aguardo

 

Infelizmente não :( não sei como funciona muito bem o tfs 1.2 e as funções mudaram muito.

NickbhzN
15 de outubro de 2015 às 21:02

Aqui ocorre tudo bem até a hora que o xp tem q ser dobrado..

 

No caso é pq é tfs 0.4 ne? So funfa nos 3.6 né?

SkyLighS
15 de outubro de 2015 às 21:14

Aqui ocorre tudo bem até a hora que o xp tem q ser dobrado..

 

No caso é pq é tfs 0.4 ne? So funfa nos 3.6 né?

 

Eu só cheguei a testar no 0.3.6 e 0.3.4 sobre o 0.4 não sei... ocorre algum erro no distro?

17 de outubro de 2015 às 23:57

Top pode ser útil a mim no futuro

SkyLighS
20 de outubro de 2015 às 12:34

Top pode ser útil a mim no futuro

Espero que seja.

1 mês depois...
RRRIKARDOR
06 de novembro de 2015 às 16:38

funciona tfs 1.0 ?

SkyLighS
06 de novembro de 2015 às 21:26

Não

Yan LiimaY
12 de novembro de 2015 às 22:47

Otima script, e otima organização no topico nem precisaria dizer mais você é foda mesmo Kissy kk é uma pena eu ter parado com tibia, mais eu trabalho com tfs 0.4 poderia adaptar mais primeiro teria que saber o erro...

AdministradorA
15 de novembro de 2015 às 23:26

Caramba, parabéns @

Ótimo script

2 semanas depois...
Yan LiimaY
23 de novembro de 2015 às 22:23

Kissy seu lindu, testei em tfs 0.4 e aqui não deu nenhum erro. Pensei em adicionar uma mensagem apos o jogador logar avisando que esta em double exp, e quando acabasse o double exp envia-se uma mensagem dizendo que acabou, e a mensagem de login avisando que esta em double xp é claro que não apareceria mais rs. Eai eu posso estar adicionando e compartilhando ou você poderia fazer isso para nos? hehe. e mais uma coisa que você não explicou caso alguém tenha duvida para mudar a porcentagem de EXP teria que mudar aqui né experience*1.5*exp no caso 1.5 seria 50%. e mudar também no Broadcast.

1 mês depois...
Luga03L
05 de dezembro de 2015 às 23:25

Testei aqui em tfs 0.4, não funcionou! mas consegui adaptar! vlw ae :)